package com.sdnu.iosclub.staqvs.service;


import com.sdnu.iosclub.qvs.entity.QvsQuestion;
import com.sdnu.iosclub.qvs.entity.QvsText;
import com.sdnu.iosclub.qvs.entity.vo.QvsCurPeoSurveyVo;
import com.sdnu.iosclub.qvs.entity.vo.QvsSurveyVo;
import com.sdnu.iosclub.qvs.entity.vo.QvsVoterVo;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author li
 * @since 2022-09-16
 */
public interface QvsStaService {

    /**
     * 根据问卷id获取所有问题
     * @param id 问卷id
     * @return 返回所有问题信息
     */
    List<QvsQuestion> getAllQuestionBySurveyId(String id);

    /**
     * 根据问题id获取所有日期或时间的Text
     * @param id 问题id
     * @return 返回所有日期或时间的Text
     */
    List<QvsText> getAllTextByQuestionId(String id);


    /**
     * 根据问题id获取所有选项内容及选择人数
     * @param id 问题id
     * @return 返回所有选项内容及选择人数
     */
    Map<String, Object> getAllOptionAndCountByQuestionId(String id);

    /**
     * 根据条件分页查询问卷信息
     * @param current 当前页数
     * @param size 每页的数量
     * @return 返回问卷信息
     */
    Map<String,Object> pageGetSurvey(Long current, Long size, QvsSurveyVo qvsSurveyVo);

    /**
     * 根据条件分页查询问卷信息
     * @param id 问卷id
     * @param current 当前页数
     * @param size 每页的数量
     * @return 返回问卷信息
     */
    Map<String,Object> pageGetQuestion(String id,Long current, Long size, QvsQuestion qvsQuestion);

    /**
     * 根据问题id查找所有填写人的信息
     * @param id 问题id
     * @return 返回填写人信息
     */
    Map<String, Object> getVoterByQuestionId(String id);


    /**
     * 根据问卷id查找所有填写人的信息
     * @param id 问卷id
     */
    List<QvsVoterVo> getVoterBySurveyId(String id,QvsVoterVo qvsVoterVo);

    /**
     * 根据问卷id和当前人的id查找：当前人的问卷的全部信息
     */
    List<QvsCurPeoSurveyVo> getAllInfoByVoterIdAndSurveyId(String surveyId, String voterId);
}
